package com.dormitoryAdministratorSystem.service.room;

import com.dormitoryAdministratorSystem.entity.page.PageBean;
import com.dormitoryAdministratorSystem.entity.room.RoomBean;

import java.util.List;
import java.util.Map;

public interface IRoomService {
    /**
     * 学生入住时查询可入住的房间
     *
     * @return 所有可入住的房间
     */
    List<RoomBean> getAllCanLiveRoom();

    /**
     * 学生退房或者换房时修改房间的可住人数
     *
     * @param rId 房间编号 peopleNo 更改的房间入住人数
     * @return 0表示失败，1表示成功
     */
    int updateRoomInfo(int rId, int peopleNo);

    /**
     * 分页查询房间信息
     *
     * @param con 分页的条件
     * @return 房间的分页对象
     */
    PageBean<RoomBean> showRoomInfos(Map<String, String> con);

    /**
     * 添加新房间
     *
     * @param newRoom 新房间
     * @return 0 失败 1 成功
     */
    int addRoomInfo(RoomBean newRoom);

    /**
     * 删除一个房间
     *
     * @param rId 房间编号
     * @return 0 失败 1 成功
     */
    int deleteRoom(int rId);

    /**
     * 根据房间id 查询房间信息
     *
     * @param rId
     * @return 该房间的对象
     */
    RoomBean getRoomInfo(int rId);

    /**
     * 改变房间状态
     * @param state 房间状态
     * @return 1 成功  0 失败
     */
    int changeRoomState(String state, int id);

    /**
     * 获得所有房间信息
     * @return 房间信息
     */
    List<RoomBean> getAllRoom();
}